/**
 * NOTE: 如果此领域的接口、interface比较多时，建议新建一个文件夹，并单独放一个types.ts文件存放所有类型声明
 */
import type { MenuDataItem } from '@ant-design/pro-layout';

/**
 * 登录出参
 */
export interface ILoginResp {
  tokenName: string;
  tokenValue: string;
}

/**
 * 登录后-重置密码入参
 */
export interface IResetPwdParams {
  currentPassword: string;
  firstPassword: string; // 密码
  secondPassword: string; // 新密码
  systemId?: number; // 系统ID  1-中台-Console 2-iSales-Console 3-iSales-钉钉工作台   4-BEES-Console   5-BEES-钉钉端   6-BEES-小程序
}

/**
 * 用户基本信息
 */
interface IUserBaseInfo {
  userId: string; // 用户ID
  employeeNo: string; // 员工工号
  name: string; // 中文姓名
  realEnName: string; // 英文姓名
  realNameVisibility: number; // 姓名展示（0：英文，1：中文）
  phone: string; // 手机号
  email: string; // 邮箱
  [key: string]: any; // 字段太多了，暂时省略
}

interface IRoleItem {
  id: string;
  name: string;
  tag: string;
  description: string;
  associatedCount: number;
  createName: string;
  updateTime: string;
  status: number;
}

/**
 * 用户信息出参
 */
export interface IUserInfoResp {
  /** 用户基本信息 */
  baseInfo: IUserBaseInfo;
  /** 用户角色信息 */
  roles: Array<Partial<IRoleItem>>;
}

/**
 * 查询菜单按钮权限出参
 */
export interface IGetAuthDataResp {
  menuList: Array<MenuDataItem & { icon: string | undefined }>;
  buttonList: Array<{ code: string; name: string }>;
}

/**
 * 员工详情出参
 */
export interface IEmployeeNoResp {
  email: string; // 邮箱
  employeeNo: string; // 员工工号
  name: string; // 中文姓名
  phone: string; // 手机号
  userId: string; // 用户ID
}
